﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;

namespace huqiang.Core.UIData
{
    //public class HTextureManager
    //{
    //    class RootBuffer
    //    {
    //        public int Size;
    //        public List<TexureBuffer> buffers;
    //    }
    //    class TexureBuffer
    //    {
    //        public int Size;
    //        public List<HTexture> textures;
    //    }
    //    static List<RootBuffer> roots;
    //    public static void LoadHScript(string url)
    //    {

    //    }
    //    //public static HSprite TextruePacker(Texture2D t2d)
    //    //{
    //    //    int w = t2d.width;
    //    //    int h = t2d.height;
    //    //    int rw = GetNormalSize(w);
    //    //    int rh = GetNormalSize(h);
    //    //    var rb = FindOrCreateRootBuffer(rw);
    //    //    var tb = FindOrCreateTextureBuffer(rb, rh);
    //    //    return InsertTexture(tb, t2d, rw, rh);
    //    //}
    //    static int GetNormalSize(int num)
    //    {
    //        if (num <= 32)
    //        {
    //            return 32;
    //        }
    //        else if (num <= 64)
    //        {
    //            return 64;
    //        }
    //        else if (num <= 128)
    //        {
    //            return 128;
    //        }
    //        else if (num <= 256)
    //        {
    //            return 256;
    //        }
    //        else if (num <= 512)
    //        {
    //            return 512;
    //        }
    //        else if (num <= 1024)
    //        {
    //            return 1024;
    //        }
    //        return 2048;
    //    }
    //    static RootBuffer FindOrCreateRootBuffer(int size)
    //    {
    //        if (roots != null)
    //        {
    //            for (int i = 0; i < roots.Count; i++)
    //                if (roots[i].Size == size)
    //                    return roots[i];
    //        }
    //        roots = new List<RootBuffer>();
    //        RootBuffer root = new RootBuffer();
    //        root.Size = size;
    //        roots.Add(root);
    //        return root;
    //    }
    //    static TexureBuffer FindOrCreateTextureBuffer(RootBuffer root,int size)
    //    {
    //        var buffers = root.buffers;
    //        if(buffers!=null)
    //        {
    //            for (int i = 0; i < buffers.Count; i++)
    //                if (buffers[i].Size == size)
    //                    return buffers[i];
    //        }
    //        else
    //        {
    //            buffers = new List<TexureBuffer>();
    //            root.buffers = buffers;
    //        }
    //        TexureBuffer tb = new TexureBuffer();
    //        tb.Size = size;
    //        buffers.Add(tb);
    //        return tb;
    //    }
    //    //static HSprite InsertTexture(TexureBuffer tb, Texture2D t2d,int rw,int rh)
    //    //{
    //    //    if (tb.textures == null)
    //    //        tb.textures = new List<HTexture>();
    //    //    var ts = tb.textures;
    //    //    for(int i=0;i<ts.Count;i++)
    //    //    {
    //    //        var hs = ts[i].InsertTexture(t2d);
    //    //        if (hs != null)
    //    //            return hs;
    //    //    }
    //    //    HTexture texture = new HTexture(2048,2048,rw);
    //    //    tb.textures.Add(texture);
    //    //    return texture.InsertTexture(t2d);
    //    //}
    //}
}
